///////////////////////////////////////////////////////////////////////////////
///
/// Copyright (c) 2012 - PG-soft
///
/// Original filename: EagleEyes.h
/// Project          : EagleEyes
/// Date of creation : <see EagleEyes.c>
/// Author(s)        : <see EagleEyes.c>
///
/// Purpose          : <see EagleEyes.c>
///
/// Revisions:         <see EagleEyes.c>
///
///////////////////////////////////////////////////////////////////////////////

// $Id$

#ifndef __EAGLEEYES_H_VERSION__
#define __EAGLEEYES_H_VERSION__ 100

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#define DEVICE_NAME			L"\\Device\\EAGLEEYES"
#define SYMLINK_NAME		L"\\DosDevices\\EAGLEEYES"

#ifndef FILE_DEVICE_EAGLEEYES
#define FILE_DEVICE_EAGLEEYES 0x8000
#endif

// Values defined for "Method"
// METHOD_BUFFERED
// METHOD_IN_DIRECT
// METHOD_OUT_DIRECT
// METHOD_NEITHER
// 
// Values defined for "Access"
// FILE_ANY_ACCESS
// FILE_READ_ACCESS
// FILE_WRITE_ACCESS

#define IOCTL_EAGLEEYES_MEM_READ            CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x01, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_MEM_WRITE           CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x02, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_SSDT_INFO           CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x03, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_SSDT_ENTRY          CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x04, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_SHADOWSSDT_INFO     CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x05, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_SHADOWSSDT_ENTRY    CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x06, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_IDT_COUNTS			CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x07, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_IDT_ENTRYS			CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x08, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_PROCESS_INFO1_LEN   CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x09, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_PROCESS_INFO1		CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x0A, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_PROCESS_INFO2_LEN	CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x0B, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_PROCESS_INFO2		CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x0C, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_PROCESS_INFO3_LEN	CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x0D, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_PROCESS_INFO3		CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x0E, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_PROCESS_INFO4_LEN	CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x0F, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_PROCESS_INFO4		CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x10, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_SYSTEM_MOD_LEN	    CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x11, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_SYSTEM_MOD_INFO 	CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x12, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_FSD_HOOK_LEN	    CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x13, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_FSD_HOOK_INFO 	    CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x14, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_CALLBACK_LEN 	    CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x15, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
#define IOCTL_EAGLEEYES_CALLBACK_INFO 	    CTL_CODE(FILE_DEVICE_EAGLEEYES, 0x16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)

#endif // __EAGLEEYES_H_VERSION__
